As software development has become more pervasive, many tools within integrated development environments (IDEs) have been provided to detect compilation errors in source code written by developers. Some IDEs, such as Eclipse and WSAD, can detect less serious errors classified as a warning. One example of a warning notification is when a JAVA (JAVA is a trademark of Sun Microsystems in the United States and/or elsewhere) package is imported without being used. Another example, is the warning that occurs when a depreciated method is used by a developer. Each of these types of detection methods represents a static approach to error detection. Specifically, the source code is typically analyzed based on a known reference or policy. Moreover, these existing approaches fail to analyze the quality of a set of source code. That is, a set of source code might not have any compilation errors, but it still might not represent the best approach to the desired functionality. As known, there is often many ways to code a single function. A developer should generally select the method that is the most efficient and consumes the least amount resources of the target system. Existing systems fail to monitor the quality of source code in such a manner.
These shortcomings are especially unfortunate in a shared network environment such as a peer-to-peer network environment. In general, a peer-to-peer network environment is characterized by a large scale (e.g., thousands to millions of participants), intermittent user and resource participation, lack of trust and lack of centralized control. In a peer-to-peer network, developers can share source code they are developing with one another. This often provides great convenience for developers who wish to reuse code without duplicating effort. Unfortunately, no existing system fully harnesses the advantages of a shared network environment. Specifically, no system takes full advantage of the volume of developers, their expertise, and skill in evaluating source code.
In view of the foregoing, there exists a need for a method, system and program product for detecting software development best practice violations in a code sharing system. Specifically, a need exists for a system in which a dynamic best practice violation (BPV) engine resource is built based on sets of source code provided by the various developers in a code sharing system. Once built, a need exists for the BPV engine resource to be used to evaluate source code based on its quality as well as a skill level and an expertise level of its developer.